package com.ys.day29.Reflect.p2反射入口三种;

import java.util.ArrayList;

/**
 * 描述: P6获得Class对象中的接口信息
 * 场景：获取ArrayList实现的接口信息
 *  * 步骤：
 *  * 1反射入口获取Class对象
 *  * 2调用getInterfaces()方法返回ArrayList实现的所有接口的Class对象，该方法返回一个数组，因为一个类可以实现多个接口
 *  * 3遍历数组里面的每一个元素，获取接口信息
 *
 * @author CodeYang
 * @version 2021/1/11 19:35
 */
public class P6获得Class对象中的实现接口信息 {

    public static void main(String[] args) {

        Class<ArrayList> aClass = ArrayList.class;
        // getInterfaces 由这个类实现的接口数组 如果对象是 void 或者没有实现接口 返回 长度为0 的数组
        Class<?>[] aClassInterfaces = aClass.getInterfaces();
        /**
         *  ArrayList里实现了 4 个接口
         * interface java.util.List
         * interface java.util.RandomAccess
         * interface java.lang.Cloneable
         * interface java.io.Serializable
         */
        for (Class<?> anInterface : aClassInterfaces) {
            System.out.println(anInterface);
        }

    }
}
